Gå til hovedinnhold

Uttrekk av studieinformajon - noen eksempler

Alle læresteder publiserer informasjon om sine studietilbud på nett. Det er derfor nødvendig å gjøre uttrekk av studieprogram, studieprogrammenes oppbygning, studieretninger, emner og EVU-kurs. Til flere disse hører tekster som har gyldighet i gitte terminer. Her må man sikre at informasjonen man henter er klargjort for publisering.

Nedenstående er ment som eksempler, en metode for å komme i gang med uttrekk via GraphQL, og er på ingen måte uttømmende. Man kan selvsagt sette opp sine spørringer og navigere hele graphen etter egne ønsker og behov.

Under utforsking av GraphQL anbefaler vi å sette header med {"Feature-Flags":"beta,experimental"}. Da får du se alle tilgjengelige data, uavhengig av hvilken api-kontrakt feltene for øyeblikket har.

Publiseringsklare studieprogram

I FS registreres det en forekomst for såkalt Infotermin på studieprogrammene for å angi at de er klargjort for publisering. Det angis der hvilken termin publiseringen gjelder for, og hvorvidt programmet skal vises fram på utdanning.no og hos studyinnorway.no.

Det knyttes ulike kategorier med tekst til studieprogrammene. Kategoriene og tekstene kan være ulike fra termin til termin.

For å hente ut de programmene som skal publiseres for en termin, og samtidig få med (kun) de tekstavsnitt som gjelder for denne, kan man ta utgangspunkt i en slik spørring:

query publiseringAvStudieprograminformasjon {
publiseringsklareStudieprogram(
filter: {eierInstitusjonsnummer: "1234", terminer: {terminbetegnelse: "HØST", arstall: 2023}}
first: 100
#after: "legg inn endCursor fra forrige side, dersom den har hasNextPage = true
) {

pageInfo {
endCursor
hasNextPage
}
nodes {
studieprogram {
id
kode
navnAlleSprak {
nno
}
vekting {
verdi
vektingstype {
navnAlleSprak {
nob
}
}
}
organisasjonsenhet {
studieansvarlig {
fakultet {
fakultetsnummer
navn {
nob
}
}
}
}
campuser {
campus {
kode
navn {
nob
}
}
}
sprak {
sprak {
navn {
nor
}
iso6392Kode
}
}
studieniva {
kode
navnAlleSprak {
nob
}
}
prosentHeltid
}
beskrivelser {
tekstkategori {
kode
navn {
nob
}
}
periode {
fraTermin {
arstall
betegnelse {
kode
}
}
}

sprak {
iso6391Kode
}
innhold
}
}
}
}

Merk: de publiseringsklare tekstene finner man under beskrivelser på samme nivå som studieprogram, altså nodes.beskrivelser. nodes.studieprogram.beskrivelser vil inneholde studieprogrammets tekster for alle semestre, uavhengig om det finnes infotermin for terminen.

Foreløpig har vi tilgjengeliggjort et utvalg hendelser for studenter og emner. Disse finner du ved å spørre etter henholdsvis emnehendelser eller studenthendelser fra Query-rota. Disse spørringene har en obligatorisk input-parameter som heter hendelsestype.

Du kan bruke GraphQL Voyager eller GraphiQL Explorer for å utforske tilgjengelige hendelsestyper, eller du kan bruke følgende introspeksjonsspørringer direkte mot APIet:

Studiets oppbygning for et kull

Studieoppbyggning er en hierarkisk struktur som bygges fritt i FS (der heter det emnekombinasjon). For å finne hvordan delene er satt sammen i en struktur, kan man hente ut hvilken parent en del tilhører.

Man kan hente ut gjeldende oppbygning for et kull på denne måten:


query studieoppbygningForKull {
studieoppbygninger(
filter: {eierOrganisasjonskode: "1234", kull: {arstall: 2025, betegnelse: HOST, studieprogramkode: "MSPROG1"}}
) {
nodes {
id
gjelderKullFra {
arstall
betegnelse {
kode
}
}
studieprogram {
id
kode
}
alleOppbygningsdeler {
id
rekkefolgenummer
parent {
id
}
studieoppbygningsdel {
kode
navnAlleSprak {
nob
}
emner {
emne {
id
kode
versjonskode
}
valgregel {
erObligatorisk
}
}
utdanningsplanelementer {
utdanningsplanelement {
kode
id
}
}
frieEmnevalg {
harFrieEmnevalg
begrensninger {
fag {
navnAlleSprak {
nob
}
}
}
}
}
}
}
}
}

Publiseringsklare emner

I FS registreres det en forekomst for såkalt Infotermin på emnene for å angi at de er klargjort for publisering. Det angis der hvilken termin publiseringen gjelder for, og hvorvidt det skal kunne publiseres hos utdanning.no.

Det knyttes ulike kategorier med tekst til emnene. Kategoriene og tekstene kan være ulike fra termin til termin.

For å hente ut de emner som skal publiseres for en termin, og samtidig få med (kun) de tekstavsnitt som gjelder for denne, kan man ta utgangspunkt i en slik spørring:


query publiseringAvEmneinformasjon {
publiseringsklareEmner(
filter: {eierInstitusjonsnummer: "1234", terminer: {arstall: 2023, terminbetegnelse: "HØST"}}
first: 10
) {
pageInfo {
endCursor
hasNextPage
}
nodes {
emne {
kode
versjonskode
navnAlleSprak {
nob
}
organisasjonsenhet {
studieAnsvarlig {
fakultet {
navn {
nob
}
}
}
}
vekting {
emnevekting {
vektingstype {
kode
navnAlleSprak {
nob
}
}
}
}
}
beskrivelser {
tekstkategori {
kode
cdmTag
}
innhold
sprak {
iso6391Kode
}
}
}
}
}

EVU-kurs

EVU-kurs kan hentes ut ved f.eks. å spørre etter hvilke kurs som avholdes innenfor et oppgitt datointervall. Man får da tilbake kurs som er registrert med overlappende periode. Dersom man ikke oppgir hverken fraDato eller tilDato, vil man også få tilbake kurs som ikke har periode registrert.

query evuKursIPeriode {
evuKurs(
filter: {eierInstitusjonsnummer: "1234", tilbysInnenforPeriode: {fraDato: "2023-01-01", tilDato: "2024-01-01"}}
) {
nodes {
kurskode
tidsangivelseskode
kursperiode {
fraDato
tilDato
}
skalEksporteresTilLms
rapporteringsar
navnAlleSprak {
nob
}
fagligAnsvarligEnhet {
fakultet {
fakultetsnummer
}
instituttnummer
gruppenummer
}
}
}
}